Release notes

2024r10

UTCStartTimestamp and localStartTimestamp in POST /asrunrecords of as-run API

In the as-run API, the POST /asrunrecords call can be used to create or update as-run records in the Mediagenix Base platform.

Previously, the calendarDate and startTime attributes in the body could only define the local date and time of the channel. This meant that if the playout system had the dates in UTC time, they had to be converted before sending them through the API. Additionally, two separate attributes were needed to define the date and time of a record.

From this version, the UTCStartTimestamp and localStartTimestamp attributes have been added to the body of the POST /asrunrecords call. They allow to define the date and time in one attribute and to use UTC time.

  • localStartTimestamp: When this is sent, the timestamp is interpreted in the local time of the channel, based on the timezone of the territory. The format of this field should be YYYY-MM-DDTHH:MM:SS.III, which takes the frame rate of the channel into account.

    • For example: if 2024-11-01T11:28:00.000 is sent, this will be considered as 11:28:00 in the local time of the channel.

  • UTCStartTimestamp: When this is sent, the timestamp is converted from UTC into the local time of the channel, based on the timezone of the territory. This should have the ISO 8601 format, meaning YYYY-MM-DDTHH:MM:SSZ or YYYY-MM-DDTHH:MM:SS+HH:00 if the timezone is added.

    • For example: if 2024-11-01T11:28:00Z is sent, and the channel timezone is UTC +02:00, this will be considered as 13:28:00 in the local time of the channel. If 2024-11-01T11:28:00+02:00 is sent, this will indicate that 2 hours need to be added to get to UTC.

An example of the call:

{
  "channelId": "Channel1",
  "asRunRecords": [
    {
      "reconcileKey": "488a9283-141b-41f4-9464-10d765e6ab84",
      "title": "Masha and the bear 1/1",
      "duration": "08:42:07.00",
      "localStartTimestamp": "2024-11-01T11:28:00.000",
      "scheduledContent": "BC22222222",
      "timeAllocationType": "Promo",
      "remarks": "added an extra event"
    }
  ]
}

Note that only one of the time-related attributes can be provided, so either

  • calendarDate and startTime,

  • localStartTimestamp,

  • or UTCStartTimestamp.

If multiple are provided, the following error is returned:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2024-10-25T10:35:37Z",
    "concept": "As-run records",
    "id": "Local",
    "errors": [
        {
            "errorCode": "CORE-00013",
            "description": "$_One of the following attributes cannot be used together: calendarDate and startTime, UTCStartTimestamp, localStartTimestamp",
            "data": [
                "calendarDate and startTime, UTCStartTimestamp, localStartTimestamp"
            ]
        }
    ]
}

If none are provided, the following error is returned:

{
    "statusCode": "422",
    "message": "Operation cannot be completed due to violations",
    "timestamp": "2024-10-25T10:37:18Z",
    "concept": "As-run records",
    "id": "Local",
    "errors": [
        {
            "errorCode": "CORE-00014",
            "description": "$_One of the following attributes is mandatory: calendarDate and startTime, UTCStartTimestamp, localStartTimestamp",
            "data": [
                "calendarDate and startTime, UTCStartTimestamp, localStartTimestamp"
            ]
        }
    ]
}

The YAML has been updated for these changes. The latest version can be retrieved by using the GET /api call.

API developers

The following has changed:

At line 46, a description was added about the new attributes.
At line 263, the new attributes were added to the properties of the AsRunRecord schema.

For easier viewing, the YAMLs can also be compared here: https://www.textcompare.org/yaml

2022r4

Subtitle field in GET /reconciledDays call of as-run API

Commercials, trailers and music clips in WHATS'ON Base have a subtitle, where additional information on the title can be entered.

This field has been added to the GET /reconciledDays call of the as-run API. It appears in the events array of the transmissions and can only have a value for interstitials.

2021r2.001

API version: v1.2.0

Product code in GET reconciled days call

In a previous version, the GET /reconciledDays call was added to the as-run API. It returns the reconciled events and transmissions on a certain day.

In this version, the attribute productCode has been added to the call. It is returned for the product of all transmissions of the day. When there is no product linked or there is more than one product code, the field will be empty.

An example:

{
    "channelId": "MgX",
    "dayStatus": "openForWOn",
    "startDate": "2020-06-01",
    "transmissions": [
        {
            "transmissionId": "2623431812",
            "startTime": "06:05:00",
            "startTimeUTC": "04:05:00",
            "announcedStartTime": "17:01",
            "duration": "02:04:00",
            "productId": "273404527",
            "productCode": null,
            "productType": "program"
            ...
        }
        ]
}
				

2021r2.000

GET call for reconciled days in as-run BAPI

In this version, the commercial integration BAPI was added. It will be used to exchange break schedules, commercials and commercial playlists between WHATS'ON and an ATS system.

The ATS system is also interested in getting actual as-run information. If this information is requested from WHATS'ON, we can enrich this with a lot of context relevant to the ATS system.

Now, a GET /reconciledDays has been added to provide the as-run information to the external system.

With this call, the reconciled active schedule is retrieved as only reconciled events are returned.

2021r1.000

Maximum number of failed authentications for REST services

in this version, a new property has been added to the REST services called Maximum number of failed authentications. See General release notes for the full release note.

2020r1.000

API version: v1.0.0

Addition of As-run API

From this version on, it is possible to import as-run records using the As-run API.